flowchart TB A(Daten einlesen) --> B(Übersicht verschaffen) --> C(Namen brauchbar machen) --> D(Ergeben die Daten Sinn?) --> E(Skalenwerte berechnen) --> F(einfaktorielle ANOVA) --> G(Ergebnis berichten)
Auswertung Emprischer Daten
einfaktorielle ANOVA
mehrfaktorielle ANOVA
einfaktorielle ANOVA mit Messwiederholung
mehrfakotirelle ANOVA mit Messwiederholung
Sind unterschiedliche Prduduktionslinien unterschiedlich produktiv?
Gibt es Unterschiede in der Pünktlichkeit von Flügen in der EU?
Haben Menschen Präferenzen für einen bestimmten Humor?
…
Wie wirken unterschiedliche Beleuchtungen auf unsere Stimmung?
Unterscheiden sich Psychologinnen von anderen Disziplinen?
Wie wirken unterschiedliche LVs auf Studierende?
…
flowchart TB A(Daten einlesen) --> B(Übersicht verschaffen) --> C(Namen brauchbar machen) --> D(Ergeben die Daten Sinn?) --> E(Skalenwerte berechnen) --> F(einfaktorielle ANOVA) --> G(Ergebnis berichten)
Hat die Social-Media-Plattformen einen Einfluss auf die Wahrnehmung des Inhalts?
Hat die Social-Media-Plattformen einen Einfluss auf die Wahrnehmung des Inhalts?
Warum nicht mehrere t-Tests für unabhängige Stichproben?
\[ \begin{aligned} \ j &= \frac{k \cdot (k - 1)}{2} \\ \\ \ j &= \frac{3 \cdot (3 - 1)}{2} \\ \ j &= 3 \\ \end{aligned} \]
Hat die Social-Media-Plattformen einen Einfluss auf die Wahrnehmung des Inhalts?
Warum nicht mehrere t-Tests für unabhängige Stichproben?
\[ \begin{aligned} \ \alpha_{kum} &= 1 - (1 - \alpha)^j \\ \\ \ \alpha_{kum} &= 1 - (1 - .05)^3 \\ \ \alpha_{kum} &= .1426 \\ \ \alpha_{kum} &= 14.26 \% \\ \end{aligned} \]
Informationen zum Datensatz ae_anova_one_way.csv
flowchart TB A(Daten einlesen) --> B(Übersicht verschaffen) --> C(Namen brauchbar machen) --> D(Ergeben die Daten Sinn?) --> E(Skalenwerte berechnen) --> F(einfaktorielle ANOVA) --> G(Ergebnis berichten) style A fill: #009e73
flowchart TB A(Daten einlesen) --> B(Übersicht verschaffen) --> C(Namen brauchbar machen) --> D(Ergeben die Daten Sinn?) --> E(Skalenwerte berechnen) --> F(einfaktorielle ANOVA) --> G(Ergebnis berichten) style B fill: #009e73
| id | age | gen | smp | Bew.01 | bew_02 | BEW.03 |
|---|---|---|---|---|---|---|
| 1 | 47 | 1 | 2 | 7 | 7 | 7 |
| 2 | 48 | 1 | 2 | 7 | 7 | 5 |
| 3 | 33 | 1 | 2 | 6 | 5 | 6 |
| 4 | 43 | 1 | 2 | 7 | 7 | 7 |
| 5 | 22 | 0 | 2 | 5 | 5 | 5 |
| 6 | 43 | 1 | 2 | 4 | 7 | 5 |
flowchart TB A(Daten einlesen) --> B(Übersicht verschaffen) --> C(Namen brauchbar machen) --> D(Ergeben die Daten Sinn?) --> E(Skalenwerte berechnen) --> F(einfaktorielle ANOVA) --> G(Ergebnis berichten) style C fill: #009e73
rename()-Funktion aus dem tidyverse-Package
clean_names()-Funktion aus dem janitor-Package
| id | age | gen | smp | bew_01 | bew_02 | bew_03 |
|---|---|---|---|---|---|---|
| 1 | 47 | 1 | 2 | 7 | 7 | 7 |
| 2 | 48 | 1 | 2 | 7 | 7 | 5 |
flowchart TB A(Daten einlesen) --> B(Übersicht verschaffen) --> C(Namen brauchbar machen) --> D(Ergeben die Daten Sinn?) --> E(Skalenwerte berechnen) --> F(einfaktorielle ANOVA) --> G(Ergebnis berichten) style D fill: #009e73
flowchart TB A(Daten einlesen) --> B(Übersicht verschaffen) --> C(Namen brauchbar machen) --> D(Ergeben die Daten Sinn?) --> E(Skalenwerte berechnen) --> F(einfaktorielle ANOVA) --> G(Ergebnis berichten) style E fill: #009e73
Reliability analysis
Call: psych::alpha(x = ca)
raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
0.81 0.81 0.74 0.58 4.2 0.018 5.6 1.2 0.57
95% confidence boundaries
lower alpha upper
Feldt 0.77 0.81 0.84
Duhachek 0.77 0.81 0.84
Reliability if an item is dropped:
raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
bew_01 0.69 0.69 0.53 0.53 2.3 0.033 NA 0.53
bew_02 0.78 0.78 0.64 0.64 3.6 0.023 NA 0.64
bew_03 0.72 0.72 0.57 0.57 2.6 0.030 NA 0.57
Item statistics
n raw.r std.r r.cor r.drop mean sd
bew_01 346 0.87 0.87 0.78 0.69 5.6 1.4
bew_02 346 0.82 0.82 0.67 0.61 5.9 1.4
bew_03 346 0.86 0.85 0.74 0.66 5.4 1.5
Non missing response frequency for each item
0 1 2 3 4 5 6 7 miss
bew_01 0.01 0.01 0.02 0.06 0.10 0.18 0.30 0.32 0
bew_02 0.00 0.01 0.03 0.05 0.07 0.15 0.22 0.47 0
bew_03 0.00 0.03 0.02 0.06 0.12 0.25 0.25 0.27 0
Wie wird der Inhalt bewertet?
flowchart TB A(Daten einlesen) --> B(Übersicht verschaffen) --> C(Namen brauchbar machen) --> D(Ergeben die Daten Sinn?) --> E(Skalenwerte berechnen) --> F(einfaktorielle ANOVA) --> G(Ergebnis berichten) style F fill: #009e73
Voraussetzungen
Voraussetzungen - Varianzhomogenität
Levene's Test for Homogeneity of Variance (center = median)
Df F value Pr(>F)
group 2 5.7298 0.003567 **
343
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Die Varianzhomogenität ist verletzt ➜ Was nun?
Voraussetzungen - Normalverteilung
Achtung
Die Daten in den einzelnen Bedingungen müssen normalverteilt sein!
Es muss keine Normalverteilung über die gesamten Daten vorliegen!
Wir rechnen trotzdem, da die ANOVA robust ist, vor allem bei großen Stichproben!
ANOVA
Hierfür nutzen wir die Anova()-Funktionaus dem car-Package
ANOVA
Anova Table (Type III tests)
Response: bw_mean
Sum Sq Df F value Pr(>F)
(Intercept) 2848.40 1 2162.011 < 2.2e-16 ***
smp_f 71.03 2 26.955 1.34e-11 ***
Residuals 451.89 343
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Effektstärke
Effektstärke
# Effect Size for ANOVA
Parameter | Eta2 | 95% CI
-------------------------------
smp_f | 0.14 | [0.08, 1.00]
- One-sided CIs: upper bound fixed at [1.00].
post-hoc-Tests
post-hoc-Test - Tukey-HSD-Test
Hierfür nutzen wir die emmeans()-Funktionaus dem emmeans-Package
# Wir erstellen zunächst ein neues Objekt namens "post" für post-hoc-Test
post <- emmeans::emmeans(mod_anova, # Das "mod_anova"-Objekt haben wir bereits erstellt
~ smp_f) # Hier müssen wir nochmals spezifizieren, welche Ausprägungen miteinander verglichen werden sollen ... warum auch immer
pairs(post, adjust = "tukey" )post-hoc-Test - Tukey-HSD-Test
contrast estimate SE df t.ratio p.value
Tik_Tok - Twitch -1.041 0.153 343 -6.817 <.0001
Tik_Tok - Insta -0.865 0.150 343 -5.774 <.0001
Twitch - Insta 0.176 0.151 343 1.167 0.4739
P value adjustment: tukey method for comparing a family of 3 estimates
flowchart TB A(Daten einlesen) --> B(Übersicht verschaffen) --> C(Namen brauchbar machen) --> D(Ergeben die Daten Sinn?) --> E(Skalenwerte berechnen) --> F(einfaktorielle ANOVA) --> G(Ergebnis berichten) style G fill: #009e73
Deskriptiven Daten
Deskriptiven Daten
| smp_f | Mittelwert | Standardabweichung |
|---|---|---|
| Tik_Tok | 4.976812 | 1.348396 |
| Twitch | 6.018018 | 1.017859 |
| Insta | 5.841667 | 1.047840 |
APA-konform
“Eine einfaktorielle ANOVA wurde durchgeführt um zu testen, ob die Wahl der Social-Media-Plattform eine Auswikrung auf die Wahrnehmung des Inhalts hat. Die Ergebnisse zeigen, dass die Social-Media-Plattform eine Auswikrung auf die Wahrnehmung des Inhalts hat, F(2, 343) = 26.95, p < .001, η² = 0.14, 95% CI [0.08, 1.00].
Der Tukey post-hoc Test zeigte einen signifikanten Unterschied zwischen Tik-Tok (M = 4.98, SD = 1.35) und Twitch (M = 6.02, SD = 1.02), p < .001. Zusätzlich zeigtes sich ein signifikanter Unterschied zwischen Tik-Tok und Instagram (M = 5.84, SD = 1.05), p < .001. Der Unterschied zwischen Twitch und Instagram war nich signifikant, p = 474.”
Balkendiagram
Balkendiagram
# Welche Farbe hätte ich denn gerne``
mf <- c("#00AFBB", "#E7B800", "#FC4E07")
# Erstellen des Plots
ds |>
ggplot(aes(x = smp_f,
y = bw_mean,
fill = smp_f)) +
stat_summary(fun = "mean" , # "stat_summary" - erledig die Arbeit für uns - Mittelwert zu plotten
geom = "bar", # Wir hätten gerne Balken
show.legend = FALSE) + # Wir brauchen keine Legende
scale_y_continuous(limits = c(0, 7),
breaks = c(0:7)) +
scale_fill_manual(values = mf) +
labs(x = "",
y = "Bewertung") +
theme_classic()Violinplot
Durchlaufen Sie sämtliche Schritte mit dem Alter der Versuchspersonen als AV!